package com.itheima.leetcode.od.b.string;

/**
 * (C卷,100分)- 拼接URL（Java & JS & Python）
 * <p>
 * 题目描述
 * <p>
 * 给定一个url前缀和url后缀,通过,分割 需要将其连接为一个完整的url
 * <p>
 * 如果前缀结尾和后缀开头都没有/，需要自动补上/连接符
 * 如果前缀结尾和后缀开头都为/，需要自动去重
 * 约束：不用考虑前后缀URL不合法情况
 * <p>
 * 输入描述
 * <p>
 * url前缀(一个长度小于100的字符串)，url后缀(一个长度小于100的字符串)
 * <p>
 * <p>
 * 输出描述
 * <p>
 * 拼接后的url
 * <p>
 * 用例
 * <p>
 * 输入	/acm,/bb
 * 输出	/acm/bb
 * 说明	无
 * <p>
 * 输入	/abc/,/bcd
 * 输出	/abc/bcd
 * 说明	无
 * <p>
 * 输入	/acd,bef
 * 输出	/acd/bef
 * 说明	无
 * <p>
 * 输入	,
 * 输出	/
 * 说明	无
 * <p>
 * 题目解析
 * <p>
 * 逻辑题，可以直接看代码实现了解逻辑。
 * <p>
 * 20230813 本题Java解法中split函数比较难搞，对于下面情况按照","分割出来的字符串数组分别是：
 * <p>
 * ","     =>   []
 * "1,"   =>   ["1"]
 * ",1"   =>   ["", "1"]
 * 我们需要注意处理下。
 * <p>
 * JS和Python的split函数就要规矩的多，上面三种输入情况，都会返回一个长度为2的字符串数组。
 * <p>
 * 更新解法使用了正则表达式，其中
 * <p>
 * prefix前缀，需要将其结尾的多个/去除，使用正则 /+$ 来匹配结尾的多个/
 * <p>
 * suffix后缀，需要将其开头的多个/去除，使用正则 ^/+ 来匹配开头的多个/
 * <p>
 * 最后拼接 prefix + "/" + suffix 即可
 * <p>
 * 对于python而言，有更简单的lstrip和rstrip方法，实现同样效果。
 */
public class URL {
    public static void main(String[] args) {
        /*Scanner sc = new Scanner(System.in);

        String s = sc.nextLine();

        String[] arr = s.split(",");

        String prefix = arr.length > 0 && arr[0].length() > 0 ? arr[0] : "/";
        String suffix = arr.length > 1 && arr[1].length() > 0 ? arr[1] : "/";*/

        String[] arr = "/acm,/bb".split(",");

        String prefix = arr.length > 0 && arr[0].length() > 0 ? arr[0] : "/";
        String suffix = arr.length > 1 && arr[1].length() > 0 ? arr[1] : "/";

//        System.out.println(getResult(prefix, suffix));
        System.out.println(getUrl("/acm,/bb"));
    }

    public static String getResult(String prefix, String suffix) {
        prefix = prefix.replaceAll("/+$", "");
        suffix = suffix.replaceAll("^/+", "");
        return prefix + "/" + suffix;
    }

    public static String getUrl(String urls) {
        String result = "/";
        if (urls.contains(",")) {
            String rep = "/";
            // 将逗号替换为斜杠，然后使用正则表达式替换连续的斜杠为单个斜杠
            result = urls.replace(",", rep).replaceAll("/+", rep);
        }
        return result;
    }
}